echo 正在进入Linux常用工具菜单
echo -e "\033[31m --------------请选择Linux常用工具-----------------\033[0m"
echo -e "\033[31m -1进入VSFTP工具：安装或添加用户，若不存在服务则安装，存在则添加用户-\033[0m"
echo -e "\033[31m -2 进入MySQL工具-必须先安装MySQL或者（mariadb）-\033[0m"
echo -e "\033[31m -3进入HTTP工具:修改网站端口-\033[0m"
echo -e "\033[31m -4进入git工具：配置码云免密码推送-\033[0m"
read modeLinux
if [ $modeLinux == 1 ]
then
	rpmd=$(rpm -qa | grep vsftpd)
	  if [ -z "$rpmd" ]
	  then
		  echo -e "\033[1m ------------------------正在安装FTP===============================—————\033[0m"
		  echo -e "\033[5;35m --------------请耐心等待，在此之间为避免意外请不要按键盘-----------------\033[0m"
		  echo -e "\033[5;35m --------------你现在可以去买一份泡面，接上热水等待，然后你会发现你没带钱-----------------\033[0m"
		  yum install vsftpd -y
		  cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak     ###备份原配置文件
		  sed -i 's/#write_enable=YES/write_enable=YES/g' /etc/vsftpd/vsftpd.conf  ##允许登陆用户有写权限               
		  sed -i 's/anonymous_enable=YES/anonymous_enable=NO/g' /etc/vsftpd/vsftpd.conf     ###关闭匿名登录
		  sed -i 's/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g' /etc/vsftpd/vsftpd.conf
		   #sed -i 's/#data_connection_timeout=120/data_connection_timeout=120/g' /etc/vsftpd/vsftpd.conf  ##建立FTP数据连接的超时时间
		   sed -i 's/#chroot_list_file/chroot_list_file/g' /etc/vsftpd/vsftpd.conf #指定用户列表文件，该文件用于控制哪些用户可以切换到用户家目录的上级目录。
		   sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/g' /etc/vsftpd/vsftpd.conf #启用chroot_list_file配置项指定的用户列表文件。默认值为NO
		   sed -i 's/tcp_wrappers=YES/tcp_wrappers=NO/g' /etc/vsftpd/vsftpd.conf #设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制
		   sed -i 's/userlist_enable=YES/userlist_enable=NO/g' /etc/vsftpd/vsftpd.conf
		   sed -i 's/#ascii_download_enable=YES/ascii_download_enable=YES/g' /etc/vsftpd/vsftpd.conf
		   #sed -i 's/#chroot_local/chroot_local/g' /etc/vsftpd/vsftpd.conf #可以切换到其他目录；未在文件中列出的用户，不能切换到其他目录
		   sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/selinux/config
		   setenforce 0
		   echo "listen_port=21" >> /etc/vsftpd/vsftpd.conf #设置FTP服务器建立连接所监听的端口，默认值为21。
	#echo "pasv_max_port=0" >> /etc/vsftpd/vsftpd.conf #
	#echo "pasv_min_port=0" >> /etc/vsftpd/vsftpd.conf #在PASV工作模式下，数据连接可以使用的端口范围的最小端口，0 表示任意端口。默认值为0
		   echo "userlist_deny=NO" >> /etc/vsftpd/vsftpd.conf  #决定vsftpd.user_list文件中的用户是否能够访问FTP服务器
	##如果userlist_enable=YES,userlist_deny=NO,此时如果在vsftpd.user_list和ftpusers中都有某个用户时，那么这个用户是不能够访问FTP的，即ftpusers的优先级要高#
		   echo "userlist_file=/etc/vsftpd/user_list" >> /etc/vsftpd/vsftpd.conf #控制用户访问FTP的文件，里面写着用户名称。一个用户名称一行。
		   #echo "local_root=/var/ftp/$ftpuser" >> /etc/vsftpd/vsftpd.conf  #本地用户登入时，将被更换到定义的目录
	#echo "user_config_dir=/etc/vsftpd/vsftpd/user_config_dir" >> /etc/vsftpd/vsftpd.conf #设置用户配置文件所在的目录
		   echo "$ftpuser" >> /etc/vsftpd/user_list 
		   #echo "anon_root=/home/FTP" >> /etc/vsftpd/vsftpd.conf
		   echo "local_root=/var/www/html/" >> /etc/vsftpd/vsftpd.conf
		   echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
	  else
		echo -e "\033[31m --------------你已安装FTP服务-----------------\033[0m"
	  fi
 
 echo -e "\033[1m —————--------是否需要添加并配置用户信息,输入 y 或者  n   回车====—————\033[0m"
read xjyh
while [ $xjyh == y ];do
	if [ $xjyh == y ]
	then
		echo 请输入FTP用户名
		read ftpuser
		mkdir -p /var/www/html/
		cd /var/www/html/
		mkdir $ftpuser
		#chown $ftpuser $usermkdir
		useradd -d /var/www/html/$ftpuser $ftpuser
		echo 请输入FTP用户密码,两次输入都要一样，不允许空密码
		passwd $ftpuser
		usermod -s /sbin/nologin $ftpuser #限定用户不能telnet，只能ftp
		echo "$ftpuser" >> /etc/vsftpd/chroot_list
		getenforce
		getsebool -a | grep ftp_home_dir
		setsebool ftp_home_dir on
		getenforce
		setenforce 0
		getenforce
		echo 你的FTP主目录为/var/www/html/$ftpuser/
		echo FTP用户名为$ftpuser
		echo FTP默认配置文件已备份为/etc/vsftpd/vsftpd.conf.bak
		echo ftp://+你的IP地址即可访问
		echo 是否继续添加用户,输入 y 或者  n 
		read xjyh
	else
	echo 跳出用户配置
	fi
break;
done
chmod 777 -R /var/www/html/
systemctl restart vsftpd
systemctl enable vsftpd
systemctl stop firewalld
systemctl disable firewalld
echo 配置完成，本脚本FTP默认配置为可上传下载权限
elif [ $modeLinux == 2 ];then
	echo -e "\033[31m -2 正在进入MySQL工具并检测是否已安装数据库服务-\033[0m"
	rpmm=$(rpm -qa | grep mariadb)
	if [ -z "$rpmm" ]; then
		echo -e "\033[31m --------------你未安装数据库服务-----------------\033[0m"
	else
		echo -e "\033[31m --------------你已安装数据库服务，请选择工具-----------------\033[0m"
		echo -e "\033[31m -----------1：强制修改数据库密码(root用户）---------\033[0m"
		echo -e "\033[31m -----------2：正规修改数据库密码(root用户）-需要知道数据库root用户密码---------\033[0m"
		echo -e "\033[31m -----------3：添加新的数据库用户---------\033[0m"
		read dbtools
		if [ $dbtools == 1 ];then
			systemctl stop mariadb
			echo "skip-grant-tables" >> /etc/my.cnf
			mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
			systemctl start mariadb
			mysql -u mysql -e


		
	fi
	
elif [ $modeLinux == 3 ];then
	echo 请输入你要使用的HTTP服务（网站）端口号
	read port
	sed -i 's/80/'"$port"'/g' /etc/httpd/conf/httpd.conf |grep $port
	systemctl restart httpd
	echo 访问网站时请在IP或者域名后面加:$por
elif [ $modelinux == 4 ];then
	echo 正在进入git配置
	echo 请输入你的邮箱地址
	read email
	echo 请输入你的用户名
	read user
	echo 请输入你的git项目地址：git开头的
	read git
	请输入你的项目文件夹名称
	read project
	cd 
	ssh-keygen -t rsa -C "$email"
	echo 密钥创建完成
	echo 请复制下面的密钥内容填写到码云公钥上
	cd &&cat .ssh/id_rsa.pub
	git remote add origin $git
	echo 主机已添加
	git remote -v
	mkdir -p /opt/git/.ssh    ###递归创建文件夹
	p=$(cat /root/.ssh/id_rsa.pub )  ##赋值密钥给p
	echo "$p" > /opt/git/.ssh/authorized_keys   ###新建一个文件并写入密钥到里面
	cd /opt/git/ &&chmod 700 .ssh ##进入git目录并赋权700权限给.ssh目录
	cd .ssh&&chmod 600 authorized_keys   ##进入.ssh目录并赋值600权限给authorized_keys文件
	cd &&git colne $git    ##也就是加上你的project地址，git开头的那个
	cd $project          ###也就是进入GIT项目根目录
	git pull    ###获取一下
	git add .  ###自己去查这是啥意思
	git commit -m "此次做了什么更改，在这里备注一下"    ###对此次更改做一个描述
	git remote -v    ###查看远程地址

else
	   echo -e "\033[1m 选择错误，安装终止\033[31m"
fi

























echo 是否返回主菜单？y/n
read main
if [ $main == y ];then
	sh shellall/main.sh
else
	echo 感谢使用
	rm -rf shellall
fi
	
